<?php

require_once PATH_CLASS."table.class.php";
require_once PATH_CLASS."match.class.php";

class saison extends table{

    public static  $CLASS_NAME  = 'saison';
    public static  $TABLE_NAME  = 't_saisons';
    public static  $PRIMARY_KEY = 'saison_id';

    var $saison_id;         // 	mediumint(9) 			Non 	Aucun 	AUTO_INCREMENT 	Affiche les valeurs distinctes 	Modifier 	Supprimer 	Primaire 	Unique 	Index 	Texte entier
	var $saison_lib;        // 	varchar(10) 	utf8_bin 		Non 			Affiche les valeurs distinctes 	Modifier 	Supprimer 	Primaire 	Unique 	Index 	Texte entier
	var $saison_smallLib;   // 	varchar(5) 	utf8_bin 		Non 			Affiche les valeurs distinctes 	Modifier 	Supprimer 	Primaire 	Unique 	Index 	Texte entier
	var $saison_active;     // 	tinyint(1) 			Non 	1 		Affiche les valeurs distinctes 	Modifier 	Supprimer 	Primaire 	Unique 	Index 	Texte entier
	var $saison_courante;   // 	tinyint(1) 			Non 	0 		Affiche les valeurs distinctes 	Modifier 	Supprimer 	Primaire 	Unique 	Index 	Texte entier
	var $point_gagnant;     // 	int(1) 			Non 	Aucun 		Affiche les valeurs distinctes 	Modifier 	Supprimer 	Primaire 	Unique 	Index 	Texte entier
	var $point_egalite;     // 	int(11) 			Non 	Aucun 		Affiche les valeurs distinctes 	Modifier 	Supprimer 	Primaire 	Unique 	Index 	Texte entier
	var $point_perdu;       //  int(11)

    public static function getTableName() {
      return self::$TABLE_NAME;
    }

    public static function getClassName() {
      return self::$CLASS_NAME;
    }

    public static function getPrimaryKey() {
      return self::$PRIMARY_KEY;
    }
    
    const CHAMPIONNAT   = 'C';
    const JOUTELIBRE    = 'J';
    
  /**
   *
   * @param type $array
   * @return saison
   */
  
  public function __construct($array) {
    parent::__construct($array);
    return $this;
  }
  
  /**
   *
   * @param int $id
   * @param string $by
   * @param string $order_by
   * @return saison or array
   */
  
  public static function getSaison($id=0,$by='',$order_by=''){
    $db = base::getDb();

    $sql =  "select * from t_saisons as t_s";

    if($id!=0){
      $sql = sprintf("$sql where saison_id=%d",$id);
    }

    if($order_by!=''){
      $sql = sprintf("$sql order by %s",$order_by);
    }

    if($by!=''){
      $ret = $db->SelectAllBy($sql, $by);
    } else {
      $ret = $db->SelectAll($sql);
    }  

    if($id!=0){
      $ret = new saison($ret[0]);
    } else {
      $ret2 = array();
      foreach($ret as $saison){
        $ret2[] = new saison($saison);
      }
      $ret=$ret2;
    }

    return $ret;

  }
  
  public static function getAllActiveSaison($sql=null,$fields='*'){
    
    if($sql==null){
      $sql  = sprintf('SELECT %s from %s where saison_active = 1 order by saison_id',$fields,self::getTableName());
    }
    $db = self::getDb();
    $ret = null;
    foreach($db->SelectAll($sql) as $item){
      $ret[] = self::newItem($item,  self::getClassName());
    }
    return $ret;
  }  
  
  public static function getCurrentId(){
    $db = parent::getDb();
    
    $sql =  "select saison_id from t_saisons as t_s where saison_courante=1 limit 1";
    
    $ret = $db->SelectFirst($sql);
    
    return $ret['saison_id'];
    
  }
  
  public static function getSaisonCourante(){
    self::getSaison(self::getCurrentId());
  }
  
  public function isActive(){
    return ($this->saison_active == 1 );
  }
 
  public function isCurrent(){
    return ($this->saison_courante == 1 );
  }
  
  public static function updateSaisonMatchsImages($id=0){
    if($id==0)  $id = self::getCurrentId ();
    foreach(match::getMatchsBySaison($id) as $match){
      $st = match::uploadMatchImagesCnt($match);
    }    
  }
}

